# Copyright 2020 The Bazel Authors. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#    http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

load("@rules_rust//rust:defs.bzl", "rust_binary", "rust_shared_library")
load("@rules_rust//wasm_bindgen:defs.bzl", "rust_wasm_bindgen")

package(default_visibility = ["//wasm_bindgen:__subpackages__"])

exports_files([
    "hello_world_wasm_test.js",
    "main.rs",
])

rust_binary(
    name = "hello_world_bin_wasm",
    srcs = ["main.rs"],
    edition = "2018",
    deps = [
        "@rules_rust//wasm_bindgen/3rdparty:wasm_bindgen",
    ],
)

rust_shared_library(
    name = "hello_world_lib_wasm",
    srcs = ["main.rs"],
    edition = "2018",
    deps = [
        "@rules_rust//wasm_bindgen/3rdparty:wasm_bindgen",
    ],
)

rust_wasm_bindgen(
    name = "hello_world_bundler_wasm_bindgen",
    wasm_file = ":hello_world_bin_wasm",
)

rust_wasm_bindgen(
    name = "hello_world_web_wasm_bindgen",
    target = "web",
    wasm_file = ":hello_world_lib_wasm",
)

rust_wasm_bindgen(
    name = "hello_world_deno_wasm_bindgen",
    target = "deno",
    wasm_file = ":hello_world_lib_wasm",
)

rust_wasm_bindgen(
    name = "hello_world_nomodules_wasm_bindgen",
    target = "no-modules",
    wasm_file = ":hello_world_lib_wasm",
)

rust_wasm_bindgen(
    name = "hello_world_nodejs_wasm_bindgen",
    target = "nodejs",
    wasm_file = ":hello_world_lib_wasm",
)
